package com.chalk.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 订单提交的结果
 */
@Data
public class OrderSubmitResult implements Serializable {

    private static final long serialVersionUID = 1497645235648630402L;
    //产生的订单数量，值>=1，如果无分单情况，则值应该为1，有分单时，值可能大于1
    private Integer createdOrderCount;
    //产生的订单id（当产生多个订单时，各订单id用逗号间隔）
    private String createdOrderIds;
    //产生的订单编号（当产生多个订单时，各订单编号用逗号间隔）
    private String createdOrderNos;
    //产生的订单的总金额
    private Double totalOrderAmount;
    //产生的订单的促销折扣总金额
    private Double totalPromoDiscountAmount;
    //产生的订单的应付总额
    private Double totalPayableAmount;
    //已下架的sku的id（当有多个sku已下架时，各sku id用逗号间隔）
    private String offListSkuIds;
    //无库存的sku的id（当有多个sku无库存时，各sku id用逗号间隔）
    private String outStockSkuIds;
    //无库存的sku的id（当有多个sku无库存时，各sku id用逗号间隔）
    private String priceChangedSkuIds;
    //无效的sku的id（当有多个无效sku时，各sku id用逗号间隔）
    private String invalidSkuIds;
    //产生的合并支付id（当产生了多个订单，且选择了在线支付时）
    private String mergedPayId;
    // 支付方式（1、在线支付，2、线下支付，3、货到付款）
    private Integer payType;
    // 支付通道（支付宝：alipay，微信：wx，线下POS机：pos，银联在线：unionpay，财付通：tenpay，快钱：99bill）
    private String payChannel;
    //创建时间
    private Date createTime;
    //买家id
    private String buyerId;
    //返回编码（成功：SUCCESS、sku已下架：OFFLIST、sku无库存：OUTSTOCK、sku价格变化：PRICE_CHANGED、失败：FAIL）
    private String resCode;
    //返回信息，一般在失败时有用
    private String resMsg;

    /**
     * 添加无效的sku的id
     *
     * @param skuId
     */
    public void addInvalidSkuId(String skuId) {
        if (skuId == null) {
            return;
        }
        if (this.invalidSkuIds == null || this.invalidSkuIds.length() == 0) {
            this.invalidSkuIds = skuId.toString();
        } else {
            this.invalidSkuIds += "," + skuId.toString();
        }
    }

    /**
     * 添加已下架的sku的id
     *
     * @param skuId
     */
    public void addOffListSkuId(String skuId) {
        if (skuId == null) {
            return;
        }
        if (this.offListSkuIds == null || this.offListSkuIds.length() == 0) {
            this.offListSkuIds = skuId.toString();
        } else {
            this.offListSkuIds += "," + skuId.toString();
        }
    }

    /**
     * 添加无库存的sku的id
     *
     * @param skuId
     */
    public void addOutStockSkuId(String skuId) {
        if (skuId == null) {
            return;
        }
        if (this.outStockSkuIds == null || this.outStockSkuIds.length() == 0) {
            this.outStockSkuIds = skuId.toString();
        } else {
            this.outStockSkuIds += "," + skuId.toString();
        }
    }

    /**
     * 添加价格改变的sku的id
     *
     * @param skuId
     */
    public void addPriceChangedSkuId(String skuId) {
        if (skuId == null) {
            return;
        }
        if (this.priceChangedSkuIds == null || this.priceChangedSkuIds.length() == 0) {
            this.priceChangedSkuIds = skuId.toString();
        } else {
            this.priceChangedSkuIds += "," + skuId.toString();
        }
    }
}
